/*
 * DatosCrearFlotaOrden.h
 *
 *  Created on: 31/01/2010
 *      Author: San Martín, Matías I.
 */

#ifndef DATOSCREARFLOTAORDEN_H_
#define DATOSCREARFLOTAORDEN_H_

#include "DatosMensaje.h"

#include "../../../Middleware/Common/IdPlaneta.h"

namespace aplicacion {

class DatosCrearFlotaOrden: public aplicacion::DatosMensaje {

//------------------------------ CONSTANTES ------------------------------
public:

//------------------------------ ATRIBUTOS ------------------------------
public:
	T_ID_FLOTA 	_idFlota;
	IdPlaneta	_planetaDestino;
	/** valor en (0,1] (0 excluido) que indica la proporcion de naves respecto
	 * del total que tendra la flota (siendo, por ej, 1 el 100%)*/
	double		_proporcionNaves;
	T_SEMILLA	_semilla;

//------------------------------ METODOS ------------------------------
public:
	DatosCrearFlotaOrden();
	virtual ~DatosCrearFlotaOrden();

	virtual std::string toString() const;

	virtual t_tipoMensaje getTipo()
	{
		return JUGADOR_CREAR_FLOTA;
	}

	//-------------------- de interfaz framework::io::SerializableToFile
	/**
	 * @see framework::io::SerializableToFile#save(int)
	 */
	virtual size_t save (int fd) const;

	/**
	 * @see framework::io::SerializableToFile#load(int)
	 */
	virtual size_t load (int fd);

	/**
	 * @see middleware::io::SerializableToArray#saveToArray(int)
	 */
	virtual size_t saveToArray (uint8_t* arr) const;

	/**
	 * @see middleware::io::SerializableToArray#loadFromArray(int)
	 */
	virtual size_t loadFromArray (const uint8_t* arr);
};

}//namespace aplicacion

#endif /* DATOSCREARFLOTAORDEN_H_ */
